package com.myqf.d6_lambda_函数式接口_方法引用.monday.lambda.四个函数式接口;


import java.util.ArrayList;
import java.util.List;

/**
 * 作者：黎杭
 * 日期：2020/2/17
 */
public class TestSupplier2 {
    public static void main(String[] args) {
//        Suibian<Integer> sup = () -> (int) (Math.random() * 100);
//        (int) (Math.random() * 100) 实际上是一个实例，它只是简写了！
        // 以下是完整的写法
//        Suibian<Integer> sup2 = new Suibian<Integer>() {
//            @Override
//            public Integer getNum() {
//                return (int) (Math.random() * 100);
//            }
//        };
        List<Integer> numbers = getNumbers(() -> (int) (Math.random() * 100));
        System.err.println(numbers);
    }
    // Suibian<Integer> 只是用来接收实现类的 作用而已，它实际上没有什么意义
    public static List<Integer> getNumbers(Suibian<Integer> sup) {// sup代表的不是接口，是匿名实现类的实例，
        List<Integer> list = new ArrayList<>();
        Integer i = sup.getNum();// get方法就是调用了 (int) (Math.random() * 100)代码
        list.add(i);
        return list;
    }
}
